config_openstack_installer_info(){
    red_z '当前设置参数如下：'
    red_z_green_z '数据库[ root ]密码:' "[$DB_PASS]"
    red_z_green_z '数据库普通用户密码:' "[$DB_USER_PASS]"
    red_z_green_z 'keystone用户[admin]密码:' "[$ADMIN_PASS]"
    red_z_green_z 'keystone用户[demo]密码:' "[$DEMO_PASS]"
    red_z_green_z '控制节点IP地址:' "[$HOST_IP]"
    red_z_green_z '控制节点主机名:' "[$HOST_NAME]"
    red_z_green_z '计算节点IP地址:' "[$NODE_HOST_IP]"
    red_z_green_z '计算节点主机名:' "[$NODE_HOST_NAME]"
    red_z_green_z "子网地址配置:" "[$SUBNET]"
    red_z_green_z "网卡设备选择:" "[$NET_CARD]"
    input "按回车开始进行安装..." Yd
    echo -e "DB_PASS=$DB_PASS
DB_USER_PASS=$DB_USER_PASS
ADMIN_PASS=$ADMIN_PASS
DEMO_PASS=$DEMO_PASS
HOST_IP=$HOST_IP
NODE_HOST_IP=$NODE_HOST_IP
HOST_NAME=$HOST_NAME
NODE_HOST_NAME=$NODE_HOST_NAME
SUBNET=$SUBNET
NET_CARD=$NET_CARD" > /opt/installer.sh
}
config_openstack_installer_default_conf(){
#设置默认的安装函数

    #数据库账户[ ROOT ]密码
    export DB_PASS='000000'
    #普通数据库密码设置
    export DB_USER_PASS='000000'




    #keystone用户[admin]的密码
    export ADMIN_PASS='000000'
    #openstack用户[ demo]的密码
    export DEMO_PASS='000000'

    #设置控制节点的IP地址
    HOST_IP=`hostname -I | awk '{print $2}'`
    if [[ -z "$HOST_IP" ]];then
        HOST_IP=`hostname -I | awk '{print $1}'`
    fi
    HOST_NAME='controller'
    #设置计算节点
    NODE_HOST_IP="`echo $HOST_IP | awk -F '.' '{print $1,$2,$3}' | sed 's/ /./g' `.20"
    NODE_HOST_NAME='compute'
    SUBNET="`echo $HOST_IP | awk -F '.' '{print $1,$2,$3}' | sed 's/ /./g' `.0/24"


    #网络配置
    NET_CARD=`cat /proc/net/dev | awk '{i++; if(i>2){print $1}}' | sed 's/^[\t]*//g' | sed 's/[:]*$//g' | grep -v lo |  awk 'END{print}'`
}
config_openstack_installer_set_conf(){
    config_openstack_installer_default_conf
    
    input "请设置控制节点主机名,默认[ $HOST_NAME ]" HOST_NAMES
    input_check "$HOST_NAMES" "控制节点主机名设置"  "$HOST_NAME"  'HOST_NAME'

    input "请设置控制节点管理IP,默认[ $HOST_IP ]" HOST_IPS
    input_check  "$HOST_IPS" "控制节点管理IP设置" "$HOST_IP" "HOST_IP"



    input "请设置计算节点主机名,默认[ $NODE_HOST_NAME ]" NODE_HOST_NAMES
    input_check "$NODE_HOST_NAMES" "计算节点主机名设置" "$NODE_HOST_NAME" "NODE_HOST_NAME"

    input "请设置计算节点管理IP,默认[ $NODE_HOST_IP ]" NODE_HOST_IPS
    input_check "$NODE_HOST_IPS" '计算节点管理IP设置'  "$NODE_HOST_IP" "NODE_HOST_IP"

    input "请设置节点网络子网,默认[ $SUBNET ]" SUBNETS
    input_check "$SUBNETS" "节点网络子网设置" "$SUBNET" 'SUBNET'


    input "请设置数据库账户[ ROOT ]密码,默认[ $DB_PASS ]" DB_PASSS
    input_check "$DB_PASSS" "数据库账户[ ROOT ]密码设置" "$DB_PASS" 'DB_PASS'

    input "请设置keystone用户[admin]的密码，默认[ $ADMIN_PASS ]" ADMIN_PASSS
    input_check "$ADMIN_PASSS" "keystone用户[admin]的密码设置" "$ADMIN_PASS" "ADMIN_PASS"

    input "请设置keystone其他账号的密码,默认 [ $DEMO_PASS ]" DEMO_PASSS
    input_check "$DEMO_PASSS" "keystone其他账号的密码" "$DEMO_PASS" "DEMO_PASS"

    input "请选择一个网卡用于集群通讯(将重置该网卡，请谨慎),默认使用: [ $NET_CARD ]" NET_CARDS
    input_check "$NET_CARDS" "集群通讯网卡设备选择"   "$NET_CARD" NET_CARD
}
config_openstack_installer_mode(){
    input "请选择安装方式:\n[1]使用默认安装信息(脚本自动判断IP地址及设置默认的账号密码)\n[2]使用自定义默认(高度定制安装，同时支持使用默认配置)" modes
    if [[ "$modes" -eq '2' ]];then
        config_openstack_installer_set_conf
    else
        config_openstack_installer_default_conf
    fi
    config_openstack_installer_info
}